SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

/****** Objeto:  procedimiento almacenado dbo.wp_get_privilegios    fecha de la secuencia de comandos: 02/11/2005 18:20:22 ******/
CREATE     PROCEDURE [dbo].[wp_get_privilegios]
@cd_operador _codigo_largo
AS

SET NOCOUNT ON

--Variables de trabajo y retorno
DECLARE @st_privilegio_adm int, 
	@st_privilegio_sup int, 
	@st_privilegio_abm int, 
	@st_privilegio_cons int,
	@st_privilegio_adm_max int, 
	@st_privilegio_sup_max int, 
	@st_privilegio_abm_max int, 
	@st_privilegio_cons_max int

SET @st_privilegio_adm_max = 0
SET @st_privilegio_sup_max = 0
SET @st_privilegio_abm_max = 0
SET @st_privilegio_cons_max = 0

--Cursor de trabajo
DECLARE privilegios_cursor 
CURSOR FOR 
	SELECT
		grupos.st_privilegio_adm, 
		grupos.st_privilegio_sup, 
		grupos.st_privilegio_abm, 
		grupos.st_privilegio_cons
	FROM 
		wcd_grupo_operadores grupos
	INNER JOIN
		wld_miembros_grupo miembros
			ON grupos.cd_grupo_operadores = miembros.cd_grupo_operadores
	WHERE
		miembros.cd_operador = @cd_operador

--Recorre el cursor
OPEN privilegios_cursor

FETCH NEXT FROM privilegios_cursor
INTO @st_privilegio_adm, @st_privilegio_sup, @st_privilegio_abm, @st_privilegio_cons

WHILE @@FETCH_STATUS = 0
BEGIN
	--Busca los máximos privilegios
	IF @st_privilegio_adm > 0
		SET @st_privilegio_adm_max = 1
	IF @st_privilegio_sup > 0
		SET @st_privilegio_sup_max = 1
	IF @st_privilegio_abm > 0
		SET @st_privilegio_abm_max = 1
	IF @st_privilegio_cons > 0
		SET @st_privilegio_cons_max = 1

	--Siguiente registro
	FETCH NEXT FROM privilegios_cursor
	INTO @st_privilegio_adm, @st_privilegio_sup, @st_privilegio_abm, @st_privilegio_cons
END

--Cierra el cursor
CLOSE privilegios_cursor
DEALLOCATE privilegios_cursor

--Retorno
SET NOCOUNT OFF
SELECT @st_privilegio_adm_max, 
	@st_privilegio_sup_max, 
	@st_privilegio_abm_max, 
	@st_privilegio_cons_max





GO
